fix(build): ensure 'desc' key exists in snippet and source properties#127
fix(build): ensure 'desc' key exists in snippet and source properties#127
Conversation
- Add default empty 'desc' for source properties in resolver_04_sources - Add default empty 'desc' for snippet properties in resolver_08_snippet_properties - Fix currentDesc reading from updated properties array in resolver_08
biz87
left a comment
There was a problem hiding this comment.
Code Review: PR #127
Чистый, минимальный фикс. Оба resolver'а корректно обрабатывают отсутствие ключа desc в properties.
resolver_04_sources.php
Дополнительный цикл после merge — логично. Проверка is_array($prop) защищает от скалярных значений. Чисто.
resolver_08_snippet_properties.php
Два изменения:
-
Инициализация
$properties[$propName]['desc'] = ''перед логикой сравнения — предотвращает warning. -
$propDef['desc'] ?? ''→$properties[$propName]['desc'] ?? ''— читает из актуального массива, а не из копииforeach. Функционально результат тот же (??вернул бы''в обоих случаях), но семантически правильнее читать из модифицируемой структуры.
$changed = true при добавлении desc технически избыточен — следующее сравнение $currentDesc !== $newDesc ('' !== 'ms3_prop_...') всегда true и тоже выставит $changed. Но не вредит и делает намерение явным.
Замечаний нет. LGTM.
Описание
Исправление ошибок при сборке пакета, когда у свойств сниппетов и источников отсутствует ключ
desc. Добавлена инициализация пустой строки дляdesc, если ключ отсутствует в определении свойства.Тип изменений
Связанные Issues
https://modx.pro/components/25458#comment-146331
Как это было протестировано?
Изменения:
resolver_04_sources.php: добавлена проверка и инициализацияdescдля свойств источниковresolver_08_snippet_properties.php: добавлена проверкаarray_key_exists('desc')перед обращением к ключу, исправлено чтениеcurrentDescиз обновлённого массива$propertiesСкриншоты (если применимо)
Не применимо.
Чеклист
Дополнительные заметки
Исправление предотвращает предупреждения/ошибки при
array_key_existsи обращении к несуществующему ключуdescв определениях свойств.